package ${codeModel.packageName};

<#list importList?keys as key>
import ${importList[key]};
</#list>	

/**
 * @description ${tableClassModel.tableMemo}
 * @author ${dataSource.author}
 * @date ${time}
 */
public interface ${ClassName}{

	public int insert(@Param("item") ${tableClassModel.className} ${tableClassModel.classVariableName});
   	
   	public int batchInsert(@Param("list") List<${tableClassModel.className}> ${tableClassModel.classVariableName}List);
   	
	public int updateByMap(Map<String, Object> modifyMap);
	
	public int updateByModel(@Param("record")${tableClassModel.className} ${tableClassModel.classVariableName});
	
	public int deleteByIds(@Param("list") List<${tableClassModel.primaryKey.classType}> list);
	
	public int deleteById(${tableClassModel.primaryKey.classType} ${tableClassModel.primaryKey.property});

	public int deleteByModel(@Param("record") ${tableClassModel.className} ${tableClassModel.classVariableName});
	
	public List<${tableClassModel.className}> selectInPage(@Param("record") ${tableClassModel.className} ${tableClassModel.classVariableName}, @Param("pageVo") PaginationVO pageVo);

	public List<${tableClassModel.className}> selectByModel(@Param("record") ${tableClassModel.className} ${tableClassModel.classVariableName});
	
	public int selectTotalRecord(@Param("record") ${tableClassModel.className} ${tableClassModel.classVariableName});
	
	public ${tableClassModel.className}  selectById(${tableClassModel.primaryKey.classType} ${tableClassModel.primaryKey.property});
	
	public ${tableClassModel.className}  selectForUpdate(${tableClassModel.primaryKey.classType} ${tableClassModel.primaryKey.property});
	
}